//
// Author: Vladimir Migashko <migashko@gmail.com>, (C) 2011
//
// Copyright: See COPYING file that comes with this distribution
//

#ifndef FASYS_CHANNELS_MESSAGE_INFO_HPP
#define FASYS_CHANNELS_MESSAGE_INFO_HPP

#include "types.hpp"

namespace fasys{ namespace channels{

/** Сообщение хранимое в канале */
struct message_info
{
  /** INDEX. устанавлявается менеджером канала */
  message_id_t message_id;
  /** INDEX. устанавлявается менеджером канала */
  channel_id_t channel_id;
  /** INDEX. Порядок в канале. устанавлявается клиентом на свое усмотрение */
  order_t order;
  /** Время создания. устанавлявается клиентом */
  //time_t source_time;
  /** INDEX. Время публикации. устанавлявается сервером публикации или клиентом*/
  // time_t publish_time;
  /** INDEX. Время регистрации. устанавлявается сервером в момент поступления события */
  time_t create_time;
  /** Время жизни. Устанавливается клиентом или сервером публикации*/
  time_t lifetime;
  /** INDEX. Время удаления события из канала. менеджером канала исходя их настроек канала*/
  time_t death_time;
  /** Ограничение на количество сообщений в канале. Устанавливается клиентом или сервером публикации*/
  size_t limit;
  /** контент сообщения. */
  data_t data;

  message_info()
    : message_id(0)
    , channel_id(0)
    , order(0)
    //, source_time(0)
    , create_time(0)
    , lifetime(0)
    , death_time(0)
    , limit(0)
  {

  }
};

}}

#endif

